﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;

//class Date
//{
//public:
//	Date(int year = 1970, int month = 1, int day = 1)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//
//	int GetMonthDay(int year, int month) const
//	{
//		const static int monthArray[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//
//		if (month == 2
//			&& ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)))
//		{
//			return 29;
//		}
//
//		return monthArray[month];
//	}
//
//	// 前置++，返回+1后的结果
//	Date& operator++()
//	{
//		_day += 1;
//		while (_day > GetMonthDay(_year, _month))
//		{
//			_day -= GetMonthDay(_year, _month);
//			++_month;
//
//			if (_month == 13)
//			{
//				++_year;
//				_month = 1;
//			}
//		}
//		
//		return *this;
//	}
//
//	Date operator++(int)
//	{
//		Date tmp(*this);
//
//		_day += 1;
//		while (_day > GetMonthDay(_year, _month))
//		{
//			_day -= GetMonthDay(_year, _month);
//			++_month;
//
//			if (_month == 13)
//			{
//				++_year;
//				_month = 1;
//			}
//		}
//
//		return tmp;
//	}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	Date d1(2024, 7, 31);
//	Date d2 = d1++;
//
//	return 0;
//}

//int GetMonthDay(int year, int month)
//{
//    static int MonthDay[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//    int day = MonthDay[month];
//    if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
//    {
//        day += 1;
//    }
//
//    return day;
//}
//
//int LeapYear(int year)
//{
//    if (((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
//    {
//        return 1;
//    }
//
//    return 0;
//}
//
//int main() {
//    int year1, year2;
//    int month1, month2;
//    int day1, day2;
//
//    while (scanf("%4d%2d%2d", &year1, &month1, &day1) != EOF)
//    {
//        scanf("%4d%2d%2d", &year2, &month2, &day2);
//
//        int sum1 = 0;
//        int sum2 = 0;
//
//        for (int yy = 0; yy < year1; yy++)
//        {
//            if (LeapYear(yy))
//            {
//                sum1 += 366;
//            }
//            else
//            {
//                sum1 += 365;
//            }
//        }
//
//        for (int mm = 1; mm < month1; mm++)
//        {
//            sum1 += GetMonthDay(year1, mm);
//        }
//
//        sum1 += day1;
//
//        for (int yy = 0; yy < year2; yy++)
//        {
//            if (LeapYear(yy))
//            {
//                sum1 += 366;
//            }
//            else
//            {
//                sum1 += 365;
//            }
//        }
//
//        for (int mm = 1; mm < month2; mm++)
//        {
//            sum1 += GetMonthDay(year2, mm);
//        }
//
//        sum1 += day2;
//        cout << abs(sum1 - sum2) + 1 << endl;
//    }
//
//    return 0;
//}

//class A
//{
//public:
//	A()
//	{
//		cout << "A()" << endl;
//	}
//
//	~A()
//	{
//		cout << "~A()" << endl;
//	}
//
//private:
//	int i;
//};
//
//class B
//{
//public:
//	B()
//	{
//		cout << "B()" << endl;
//	}
//
//	~B()
//	{
//		cout << "~B()" << endl;
//	}
//
//private:
//	int i;
//};
//
//class C
//{
//public:
//	C()
//	{
//		cout << "C()" << endl;
//	}
//
//	~C()
//	{
//		cout << "~C()" << endl;
//	}
//
//private:
//	int i;
//};
//
//class D
//{
//public:
//	D()
//	{
//		cout << "D()" << endl;
//	}
//
//	~D()
//	{
//		cout << "~D()" << endl;
//	}
//
//private:
//	int i;
//};
//
//C c;
//
//int main()
//{
//	A a;
//	B b;
//	static D d;
//	
//
//	return 0;
//}

//int main()
//{
//	cout << 3/2 << endl;
//
//	return 0;
//}

//int main()
//{
//	// 动态申请一个int类型的空间
//	int* ptr1 = new int;
//
//	// 动态申请一个int类型的空间并初始化为10
//	int* ptr2 = new int(10);
//
//	// 动态申请十个int类型的空间
//	int* ptr3 = new int[10];
//
//	delete ptr1;
//	delete ptr2;
//	delete[] ptr3;
//
//	return 0;
//}

class A
{
public:
	A(int a = 0)
		: _a(a)
	{
		cout << "A():" << endl;
	}

	~A()
	{
		cout << "~A()" << endl;
	}

private:
	int _a;
};

int main()
{
	A* p1 = (A*)malloc(sizeof(A));
	A* p2 = new A(1);
	free(p1);
	delete p2;

	return 0;
}